<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
</head>

<body>

    <h2>JavaScript 类的方法</h2>

    <p>传递参数到 "age()" 方法。</p>

    <p id="demo"></p>

    <script>
        /* 
        构造方法是一种特殊的方法：

        构造方法名为 constructor()。
        构造方法在创建新对象时会自动执行。
        构造方法用于初始化对象属性。
        如果不定义构造方法，JavaScript 会自动添加一个空的构造方法。
        */
        class Runoob {
            constructor(name, year) {
                this.name = name;
                this.year = year;
            }
            age(x) {
                return x - this.year;
            }
        }

        let date = new Date();
        let year = date.getFullYear();

        let runoob = new Runoob("菜鸟教程", 2020);
        document.getElementById("demo").innerHTML =
            "菜鸟教程 " + runoob.age(year) + " 岁了。";
        /* 
        类声明和类表达式的主体都执行在严格模式下。比如，构造函数，静态方法，原型方法，getter 和 setter 都在严格模式下执行。

如果你没有遵循严格模式，则会出现错误：
        */
    </script>

</body>

</html>